Block view for geographic navigation

ABSTRACT

Various embodiments provide techniques for geographic navigation via one or more block views. According to some embodiments, a block view can include a visual image of a geographic location that is visually similar to a panoramic image. In some example implementations, a block view can be scrolled to navigate images of a geographic location. In one or more embodiments, a bubble view can be displayed of one or more locations within the block view. The bubble view can include a zoomed image of one or more aspects of a block view. Further to some embodiments, a map view can be utilized along with the block view and/or the bubble view. The map view can include a two-dimensional representation of the geographic location from an aerial perspective, and can include a more general level of detail concerning the geographic location, such as streets, cities, states, bodies of water, and so on.

BACKGROUND

Navigation applications can provide ways for navigating maps and/orgeographic images. Many current navigation applications, however, failto provide a user with sufficient context in a navigation experience.Without sufficient context, a user can lose his or her orientationduring a navigation experience.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Various embodiments provide techniques for geographic navigation via oneor more block views. According to some embodiments, a block view caninclude a visual image of a geographic location that is visually similarto a panoramic image, but may have no fixed or parametric center ofprojection. Thus, in some example implementations, a block view can bescrolled to navigate one or more images of a geographic location.

In one or more embodiments, a bubble view of one or more locationswithin the block view can be displayed. A bubble view can include azoomed image of the location(s) from the block view and can provide moregraphic detail of the location(s). Further to some embodiments, a mapview can be utilized along with a block view and/or a bubble view. A mapview can include a two-dimensional representation of a geographiclocation from an aerial perspective. A map view can include a moregeneral level of detail concerning a geographic location, such asstreets, cities, states, bodies of water, and so on.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the drawings to reference likefeatures.

FIG. 1 illustrates an operating environment in which the inventiveprinciples can be employed in accordance with one or more embodiments.

FIG. 2 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 3 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 4 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 5 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 6 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 7 illustrates an example zoom navigation technique, according toone or more embodiments.

FIG. 8 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 9 illustrates an example user interface in accordance with one ormore embodiments.

FIG. 10 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 11 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 12 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 13 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 14 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 15 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 16 is a block diagram of a system in accordance with one or moreembodiments.

DETAILED DESCRIPTION

Overview

Various embodiments provide techniques for geographic navigation via oneor more block views. According to some embodiments, a block view caninclude a visual image of a geographic location that is visually similarto a panoramic image, but the block view may have no fixed or parametriccenter of projection. Thus, in some example implementations, a blockview can be scrolled to navigate one or more images of a geographiclocation.

For example, consider a scenario where multiple images are captured inthe downtown Seattle area. The images can be navigated by stitching theimages together to create a block view of downtown Seattle. Thus, inthis example scenario, an instance of the block view of downtown Seattlecan include a view of one side of 1^(st) Avenue. A user can navigatenorth or south along 1^(st) Ave (e.g., by moving an icon or otherindicium along a visual representation of 1^(st) Ave), which can causethe block view to move north or south along 1^(st) Ave. The term “blockview” is not intended to be limiting, and it is to be appreciated that aparticular block view can include a variety of different portions ofgeographic images.

In one or more embodiments, a bubble view can be displayed of one ormore locations within the block view. A bubble view can include a zoomedimage of one or more aspects of a block view. For example, in thescenario mentioned above, a bubble view can include a zoomed image ofone or more buildings along 1^(st) Ave. in Seattle. Thus, in someimplementations, a block view can provide a user with higher levelcontext (e.g., a particular block or blocks in downtown Seattle), whilea bubble view can provide the user with more detail about a particularlocation.

Some embodiments utilize a map view along with a block view and/or abubble view. A map view can include a two-dimensional representation ofa geographic location from an aerial perspective and can include a moregeneral level of detail concerning a geographic location, such asstreets, cities, states, bodies of water, and so on.

In some embodiments, a block view can be displayed along with a bubbleview and/or a map view to provide a user with a robust collection ofinformation about one or more geographic locations. A user can navigatewithin each of the views, and user navigation within one view can causean automatic navigation within one or more of the other views.

In the discussion that follows, a section entitled “OperatingEnvironment” describes but one environment in which the variousembodiments can be employed. Following this, a section entitled “ExampleUser Interfaces” describes example user interfaces in accordance withone or more embodiments. Next, a section entitled “Mapping between Viewsand the World” describes example techniques for mapping between pixelsused to create a particular view and geographic coordinates, inaccordance with one or more embodiments. Following this, a sectionentitled “Example Methods” describes example methods in accordance withone or more embodiments. Last, a section entitled “Example System” isprovided and describes an example system that can be used to implementone or more embodiments.

Operating Environment

FIG. 1 illustrates an operating environment in accordance with one ormore embodiments, generally at 100. Environment 100 includes a computingdevice 102 having one or more processors 104 and one or morecomputer-readable storage media 106. The computer-readable storage media106 can include, by way of example and not limitation, all forms ofvolatile and non-volatile memory and/or storage media that are typicallyassociated with a computing device. Such media can include ROM, RAM,flash memory, hard disk, removable media and the like. One specificexample of a computing device is shown and described below in FIG. 16.

The computing device 102 also includes various types of softwareapplications that can implement and/or access the functionalitydescribed herein. One such application is a web browser 108 that resideson the computer-readable storage media 106. The computing device 102also includes user information 110 that resides on the computer-readablestorage media 106. The user information 110 can include information suchas user identification/authentication information, user logininformation, user preferences, and so on.

According to one or more embodiments, the computing device 102 isconfigured to access a map service 112 via a network 114. Examples ofthe network 114 include the Internet, a wide area network, a local areanetwork, and so on. The map service 112 includes geographic images 116and position information 118. The geographic images 116 can include avariety of different image types, such as photographs, video, maps, andso on. Examples of the position information 118 include GlobalPositioning System (GPS) information, inertial measurement unit (IMU)information, GLONASS information, Galileo navigation system information,cell phone triangulation information, and so on. In some embodiments,geographic coordinates (e.g., GPS coordinates) from the positioninformation 118 can be mapped to a geographic image of the geographicimages 116 to enable the geographic image to be associated with aparticular location in the world.

In some example implementations, the map service 112 can provide dataused to display one or more of a block view, a bubble view, and/or a mapview of a geographic location for display and navigation via the webbrowser 108. For example, a user can navigate one or more geographicimages using a variety of user input techniques or devices, such as bydragging a cursor with a mouse, touch input, voice recognition input,and so on.

Computing device 102 can be embodied as any suitable computing devicesuch as, by way of example and not limitation, a desktop computer, aportable computer, a handheld computer such as a personal digitalassistant (PDA), cell phone, and the like.

Having considered an example operating environment, consider now adiscussion of example user interfaces that can be utilized to implementone or more embodiments discussed herein. The example user interfacesare discussed with reference to environment 100, above.

Example User Interfaces

FIG. 2 illustrates an example user interface in accordance with one ormore embodiments, generally at 200, for navigating one or more views ofa geographic location. According to some embodiments, the user interface200 can be associated with one or more applications, such as the webbrowser 108, and can be displayed by a computing device, such ascomputing device 102.

The user interface 200 includes a bubble view 202, a block view 204, anda map view 206. According to one more embodiments, a bubble view caninclude a spherical panoramic image that is captured and/or created in360° around a particular point. For example, a bubble view can becreated by capturing one or more images that correspond to rays thattravel through a point from 360° around the point. According to one ormore embodiments, the captured images can be stitched together utilizingany appropriate image stitching technique to form the bubble view. Thus,in some implementations a bubble view can be rotated to view imagescaptured around a particular point. In some embodiments, an instance ofa bubble view can be considered a “capture event”. Multiple captureevents can be utilized along a particular navigable route (e.g., aroadway) to enable navigation among capture events via a bubble viewalong the navigable route.

In this example embodiment, the block view 204 displays an image of acity block. According to some embodiments, a block view can be createdby stitching together a plurality of images captured along a linear orpseudo-linear route using any appropriate image stitching method. Thus,in some implementations, a block view can be scrolled to display imagesof locations that are not currently displayed and that are peripheraland/or adjacent to a currently-displayed location. Further to someembodiments, irregularities in the images used to create the block view(e.g., a building that protrudes beyond other features included in theimages) can be normalized to enable an easily-navigable block view to bepresented.

In one or more embodiments, the block view 204 can include anabstraction of a particular geographic location, such as an approximatedoutline drawing of a city block. Thus, and further to some embodiments,the abstracted image in the block view 204 can be navigated and actualimages that correspond to the abstracted image can populate the bubbleview 202. Additionally and/or alternatively, navigation can occur via anabstracted block view, and when a zoom-in occurs on the abstracted blockview, one or more actual images can be downloaded and used to populate abubble view. According to one or more embodiments, if a zoom-out occursfrom the bubble view, the view can return to the abstracted block view.Using an abstracted image for the block view 204 can reduce the amountof data used to create the user interface 200 and can allow for asmoother navigation experience.

In this particular example, the bubble view 202 corresponds to aparticular location within the block view 204, as indicated by a blockicon 208. According to one or more embodiments, the block icon 208 canindicate an approximate position and orientation of an image that isused to create the bubble view 202. As illustrated here, the block icon208 corresponds to a location in the block view 204 that is used topopulate the bubble view 202.

The map view 206 includes, according to some embodiments, a map icon 210that indicates a map location and a map orientation of the block view204 and/or the bubble view 202. In some embodiments, the map view 206can represent a more general location of the bubble view 202 and/or theblock view 204.

According to some embodiments, one or more of the bubble view 202, theblock view 204, and/or the map view 206 are navigable to move amonggeographic locations. In this particular example, each of the bubbleview 202, the block view 204, and the map view 206 includes selectablearrows that are selectable to navigate within the particular view. Insome implementations, navigation can also be accomplished by dragging anicon, such as the block icon 208 and/or the map icon 210.

In one or more embodiments, user navigation within one of the views cancause an automatic navigation within one or more of the other views. Forexample, if a user were to drag the block icon 208 to a new locationwithin the block view 204, the images displayed within the bubble view202 and/or the map view 206, and/or the location of the map icon 210,can be updated to correspond to the new location of the block icon 208.As a further example, if a user were to drag the map icon 210 within themap view 206, the bubble view 202 and/or the block view 204 can beupdated to correspond to the new location of the map icon 210.

In one or more example implementations, navigation within the bubbleview 202 (e.g., by selecting one of the selectable arrows) can cause thebubble view 202 to rotate around a point within the bubble view. In thisparticular example, the bubble view 202 is facing a side of a cityblock. Thus, navigating the bubble view 202 can cause the bubble view torotate away from the side of the city block, e.g., to face up or down acity street the runs in front of the city block. According to someimplementations, when the bubble view 202 rotates, the block icon 208and/or the map icon 210 can automatically rotate to indicate a neworientation of the bubble view 202. For example, if the bubble view 202rotates to face down a street, the block icon 208 can rotate such thatthe pointer within the block icon points down the street within theblock view 204.

FIG. 3 illustrates an example user interface in accordance with one ormore embodiments, generally at 300, for navigating one or more views ofa geographic location and viewing annotations of the geographiclocation. According to some embodiments, the user interface 300 can beassociated with one or more applications, such as the web browser 108,and can be displayed by a computing device, such as computing device102.

User interface 300 includes a block view 302 and a map view 304. As partof the block view 302 is a block icon 306 that indicates an orientationof a bubble view (e.g., the bubble view 202 of FIG. 2) associated withthe block view 302. To aid in this discussion, user interface 300 isillustrated without a bubble view. However, it is to be appreciatedthat, in some implementations, one or more bubble views can be includedas part of or adjacent to the user interface 300. In this exampleimplementation, the block icon 306 includes a pointer that points toindicate the orientation of an associated bubble view with respect tothe block view 302.

Included with the map view 304 is a map icon 308. Similarly to the blockicon 306, the map icon 308 includes a pointer that indicates anorientation of the block view 302 and/or an associated bubble view withrespect to the map view 304.

The user interface 300 also includes annotations 310, 312, 314.According to some embodiments, annotations can be added to a bubbleview, a block view, and/or a map view. Annotations can be populated witha variety of metadata concerning a variety of geographic locations, suchas businesses, locations of historical significance, locations ofpersonal significance, and so on. According to some embodiments,information used to populate an annotation can be retrieved from ageographic database (such as a geographic information system (GIS)),added by a user, and so on. In some example implementations, anannotation can attach to a particular image or region in a view and canthus move within the view based on movement of the image or regionwithin the view.

FIG. 4 illustrates an example user interface in accordance with one ormore embodiments, generally at 400, for navigating one or more views ofa geographic location and determining a bubble view orientation.According to some embodiments, the user interface 400 can be associatedwith one or more applications, such as the web browser 108, and can bedisplayed by a computing device, such as computing device 102.

The user interface 400 includes a block view 402 and a map view 404. Insome embodiments, the block view 402 and the map view 404 are associatedwith a bubble view, such as the bubble view 202 (FIG. 2). The block view402 illustrates another way of indicating an orientation of a bubbleview, illustrated here as a block focus icon 406. For purposes ofillustration, in some implementations the block focus icon 406 can beenvisioned as a “flashlight” that shines on a particular area of thebubble view 402. In this illustrated example, the block focus icon 406indicates a particular area of the block view 402 that is in focus in anassociated bubble view (e.g., the bubble view 202).

Included as part of the map view 404 is a map focus icon 408. The mapfocus icon 408 indicates an area of the map view 404 that is in focus inthe block view 402 and/or an associated bubble view. Similar to some ofthe previously-discussed embodiments, the block focus icon 406 and/orthe map focus icon 408 can move based on a change in a geographiclocation that is in focus. Further to some embodiments, the block focusicon 406 and/or the map focus icon 408 can be manipulated (e.g., via acursor and a mouse) to change a particular geographic location that isin focus in one or more of the views.

FIG. 5 illustrates at 500 an example user interface 502 in accordancewith one or more embodiments for navigating one or more views of ageographic location and changing block views based on a bubble vieworientation. According to some embodiments, the user interface 502 canbe associated with one or more applications, such as the web browser108, and can be displayed by a computing device, such as computingdevice 102.

The user interface 502 includes a bubble view 504 and a block view 506.In this example, the bubble view 504 is focused down a road and includesa bubble icon 508 that points in a general direction of focus for thebubble view 504. The block view 506 includes a block icon 510 thatindicates (e.g., via the illustrated pointer) a region of the block view506 that is in focus in the bubble view 504.

According to one or more embodiments, a particular block view that isdisplayed can be determined by an orientation of a bubble view. In thisparticular illustration, the bubble icon 508 is associated with a blockthreshold 512 (illustrated as the dotted line through the bubble icon508). When the orientation of the bubble icon 508 is on one side of theblock threshold 512, a particular region of the bubble view 504 can bein focus in the block view 506. For example, in this particularimplementation, the bubble icon 508 points to the left of the blockthreshold 512, and thus the region of the bubble icon to the left of theblock threshold 512 is displayed in the block view 506.

At 514, the orientation of the bubble view 504 has changed such that thebubble icon 508 points to the right of the block threshold 512.Responsive to the change in the orientation of the bubble view 504, theblock view 506 changes to display a region of the bubble view 504 thatis oriented to the right of the block threshold 512.

FIG. 6 illustrates an example user interface in accordance with one ormore embodiments, generally at 600, for navigating one or more views ofa geographic location and scrolling block views based on bubble viewnavigation. According to some embodiments, the user interface 600 can beassociated with one or more applications, such as the web browser 108,and can be displayed by a computing device, such as computing device102.

The user interface 600 includes a bubble view 602, a first block view604, and a second block view 606. According to some embodiments, aplurality of block views associated with a bubble view can be displayed.In this particular example, the first block view 604 corresponds to theleft side of the bubble view 602, and the second block view 606corresponds to the right side of the bubble view 602.

In some embodiments, navigation within the bubble view 602 can occur bymanipulating a bubble icon 608 (e.g., via user input). When navigationoccurs within the bubble view 602, navigation within the block views604, 606 can occur. In some example implementations, navigation withinthe block views 604, 606 can occur automatically and responsive to thenavigation within the bubble view 602. Thus, in this particular exampleimplementation, block views 604, 606 correspond to opposite sides of aroadway, and scrolling of the block views 604, 606 along the oppositesides of the roadway can occur responsive to navigation down the roadwaywithin the bubble view 602.

FIG. 7 illustrates an example zoom navigation technique, according toone or more embodiments. The zoom navigation technique can be utilizedand/or displayed in one or more of the user interfaces discussed hereinand can be associated with one or more applications, such as the webbrowser 108.

At 700, a bubble view 702 is presented with a bubble icon 704 and aroute 706 (e.g., a roadway). As illustrated at 700, the bubble icon 704points along the route 706. According to some embodiments, when a bubbleicon is oriented along a route, a zoom function can cause the bubbleview to navigate along the route. In some implementations, a view can bezoomed via user input, such as a selection of a zoom icon, rotating amouse wheel, pressing a zoom button on a keyboard, and so on. In theexample illustrated at 700, a zoom function is activated, which causesthe bubble view 702 to navigate along the route 706 toward a location708. Also illustrated as part of the bubble view 702 is a cursor 710that is used to place focus on the location 708. A cursor is used forpurposes of example only, and it is to be appreciated that anyappropriate means may be utilized to place focus on a location and/orobject. According to one or more embodiments, the cursor 710 can bemanipulated via one or more forms of user input.

At 712, activating the zoom function has caused navigation in the bubbleview 702 to proceed further along the route 706 toward the location 708.According to some embodiments, placing focus on the location 708 (e.g.,by selecting the location via the cursor 710) causes navigation in thebubble view 702 to orient towards the location 708. For example, as thenavigation progresses along the route 706 toward the location 708 (e.g.,via activation of the zoom function), the bubble view 702 can rotatetoward the location 708 as the navigation approaches the location.

At 714, navigation along the route 706 has arrived at the location 708.Since the location 708 is still in focus (e.g., still selected with thecursor 710), the bubble view 702 rotates to face the location 708.According to some embodiments, when the bubble view 702 faces thelocation 708, activating a zoom function can cause the bubble view 702to zoom into and/or away from the front surface (e.g., face) of thelocation 708.

Thus, in one or more embodiments, the effect of the zoom function can bedetermined based on a direction of navigation and/or a particularlocation that is in focus. As illustrated here, when the location 708 isfurther away in the bubble view 702 (e.g., at 700), activating the zoomfunction can cause navigation along the route 706. When the location 708is selected, activating the zoom function causes the navigation alongthe route 706 to orient towards the location 708 until the location isreached. When the location 708 is reached, the effect of the zoomfunction can change from navigation along the route 706 to zooming intoand/or out of a view of the location 708.

FIG. 8 illustrates an example user interface in accordance with one ormore embodiments, generally at 800, for navigating one or more views ofa geographic location and utilizing static images for repetitivelandscapes. According to some embodiments, the user interface 800 can beassociated with one or more applications, such as the web browser 108,and can be displayed by a computing device, such as computing device102.

User interface 800 includes a bubble view 802, a first block view 804,and a second block view 806. According to some embodiments, navigationalong a route 808 occurs in the bubble view 802, such as, for example,utilizing the zoom navigation technique discussed above. In thisparticular example, the first block view 804 corresponds to the leftside of the route 808, and the second block view 806 corresponds to theright side of the route 808.

According to some embodiments, one or more locations encountered duringa navigation experience may be somewhat homogenous or repetitive innature. For example, a road can travel next to a forested area for manykilometers. In one or more embodiments, when a route being navigatedincludes a relatively repetitive landscape, one or more imagesassociated with the navigation can be static images.

In this particular example, the landscape to the left of the route 808includes buildings and other features that include a relatively constantvisual variation during navigation of this particular section of theroute 808. However, the landscape to the right of the route 808 includesa forested area that appears to change very little during navigation ofthis particular section of the route. Thus, according to someembodiments, the first block view 804 can be updated with new images asnavigation of the route 808 in the bubble view 802 progresses. Since thelandscape to the right of the route 808 appears to change very littleduring the navigation of this particular section of route 808, a staticimage can be displayed as part of the second block view 806. The staticimage can include a photograph captured along this particular section ofthe route 808. When the landscape to the right of the route 808 changes,such as when the navigation of the route 808 encounters an urban area,the static image in the second block view 806 can be replaced with adynamic image that is updated with new images (e.g., via scrolling) asnavigation along the route 808 progresses.

FIG. 9 illustrates an example user interface in accordance with one ormore embodiments, generally at 900, for navigating one or more views ofa geographic location and utilizing bubble views to provide navigationcontext. According to some embodiments, the user interface 900 can beassociated with one or more applications, such as the web browser 108,and can be displayed by a computing device, such as computing device102.

The user interface 900 includes a block view 902 with a first bubbleview 904 at the left end of the block view 902 and a second bubble view906 at the right end of the block view 902. According to one or moreembodiments, the first bubble view 904 and the second bubble view 906can be stitched to the block view 902 to provide a visual indication ofone or more locations that occur along the periphery of the block view902. For example, the first bubble view 904 can include images from bothsides of a roadway that runs along the front of the block view 902 andto the left of the block view 902. Thus, according to some embodiments,a region 908 can correspond to an extension of block view 902 to theleft, and a region 910 can correspond to a view to the left of the blockview 902 and across the roadway from the block view 902. In someimplementations, if the block view 902 is scrolled to the right (e.g.,by selecting one of the selectable navigation arrows), the region 908can populate the block view 902 and can be displayed as a block viewinstead of a bubble view.

Further to some embodiments, the second bubble view 906 can includeimages from both sides of a roadway that runs along the front of theblock view 902 and to the right of the block view 902. Similar in somerespects to the first bubble view 904, the second bubble view 906includes a region 912 that can correspond to an extension of block view902 to the right, and a region 914 that can correspond to a view to theright of the block view 902 and across the roadway from the block view902.

As illustrated here, in some embodiments the first bubble view 904 andthe second bubble view 906 include selectable arrows that can beselected (e.g., via user input) to navigate within one or more of thebubble views. Further to some embodiments, navigation within one of theviews (e.g., the block view 902, the first bubble view 904, or thesecond bubble view 906) can cause an automatic navigation in one or moreof the other views.

In some embodiments, when no navigation is occurring within the userinterface 900, only the block view 902 can be displayed. When anavigation occurs (e.g., within the block view 902), one or more of thefirst bubble view 904 and/or the second bubble view 906 can be displayedto provide context for the navigation. For example, if the block view902 is navigated to the left, only the first bubble view 904 can bedisplayed adjacent to the block view to provide context for navigationin that particular direction. Additionally and/or alternatively, if theblock view 902 is navigated to the right, only the second bubble view906 can be displayed adjacent to the block view.

The arrangements of visual elements included in the user interfacesdiscussed above are for purposes of example only, and it is to beappreciated that any suitable arrangements of visual elements may beutilized without departing from the spirit and scope of the claimedembodiments.

Mapping Between Views and the World

This section discusses example ways of mapping between pixels that forma view (e.g., a bubble view, a block view, and/or a map view) andcoordinates that make up particular locations in the geographic world,according to some embodiments. For purposes of this discussion a blockview will be considered, but the techniques can apply to any of theviews discussed herein.

One example technique for mapping pixels in a block view to geographiccoordinates uses position information (e.g., the position information118) to determine coordinates for a 3-dimensional point in the world(X_(w), Y_(w), Z_(w)). In some implementations, X_(w) can be a latitudevalue, Y_(w) a longitude value, and Z_(w) a height value. Thecoordinates (X_(w), Y_(w), Z_(w)) can be mapped to a pixel (S⁻¹·Xv,S⁻¹·Yv) of a block view, where S⁻¹ is a scale factor of the block view,Xv is an X value of the pixel, and Yv is the Y value of the pixel.

According to one or more embodiments, one or more of several differenttechniques for storing the mappings between block view pixels andgeographic coordinates can be utilized examples of which are providedjust below.

(1) List Technique—For every pixel used to display a block view thereare geographic coordinates that describe the location of the pixel inthe geographic world. For example, every pixel can have a latitudevalue, a longitude value, and a height (e.g., elevation) value.

(2) Column Technique—the block view can be divided into columns andgeographic coordinates can be associated with each column. For example,in one or more embodiments a block view is stitched together using aplurality of camera shots, and a camera position (e.g., in geographiccoordinates) for each camera shot can be known. Thus, each cameraposition can be considered a column, and the known camera positions canbe mapped to geographic coordinates to provide a mapping between theblock view and the geographic world.

(3) Function Technique—an approximation of the mapping between blockview pixels and geographic coordinates can be made by characterizing themapping as a function, such as a polynomial.

(4) Bubble Technique—information from bubble views can be used to mapgeographic coordinates to pixels of a block view. For example, each ofseveral bubble views can be associated with geographic coordinates basedon a location where the images used to create each bubble view werecaptured. The block view can be mapped to each of the bubble views, andthe geographic coordinates from each of the bubble views can be mappedto a particular location within the block view.

Example Methods

FIG. 10 is a flow diagram that describes a method in accordance with oneor more embodiments. The method can be implemented in connection withany suitable hardware, software, firmware, or combination thereof. In atleast some embodiments, the method can be implemented by softwareexecuting or executable (e.g., the web browser 108 and/or the mapservice 112) to enable navigation of geographic content.

Step 1000 causes two or more of a bubble view, a block view, or a mapview of a geographic location to be displayed. According to someembodiments, the bubble view, block view, and/or the map view can bedisplayed as part of a user interface, e.g., in response to a search fora particular geographic location. Step 1002 receives an indication ofnavigation within the bubble view, the block view, or the map view,e.g., in response to user input to one or the views. Example ways ofnavigating within the bubble view, block view, and/or the map view arediscussed above. If the navigation is within the bubble view (“BubbleView”), step 1004 causes navigation within the block view and/or the mapview. According to one or more embodiments, the navigation within theblock view and/or the map view can occur automatically and responsive tothe navigation within the bubble view.

Alternatively, if the navigation is within the block view (“BlockView”), step 1006 causes navigation within the bubble view and/or themap view. According to one or more embodiments, the navigation withinthe bubble view and/or the map view can occur automatically andresponsive to the navigation within the block view. In some exampleimplementations, navigation to a different block view can occurresponsive to navigation with a current block view. For example, if auser navigates to an intersection within a block view, the block viewcan change to a different street and/or a different side of a street.Thus, one or more different block views can be displayed responsive tonavigation within a particular block view.

As another alternative, if the navigation is within the map view (“MapView”), step 1008 causes navigation within the bubble view and/or theblock view. According to one or more embodiments, the navigation withinthe bubble view and/or the block view can occur automatically andresponsive to the navigation within the map view.

FIG. 11 is a flow diagram that describes a method in accordance with oneor more embodiments. The method can be implemented in connection withany suitable hardware, software, firmware, or combination thereof. In atleast some embodiments, the method can be implemented by softwareexecuting or executable (e.g., the web browser 108 and/or the mapservice 112) to enable navigation of geographic content.

Step 1100 causes a block view and a bubble view of a first geographiclocation to be displayed. According to some embodiments, the block viewand the bubble view can be displayed in a user interface, such as one ormore of the user interfaces discussed above. Step 1102 causes anindicium of a bubble view orientation to be displayed as part of theblock view. One example of such an indicium is the block icon 208illustrated in FIG. 2.

Step 1104 receives an indication of navigation via the indicium of thebubble view orientation. For example, and as discussed above withrespect to FIG. 2, a user can manipulate the block icon 208 to navigatewithin the block view and/or the bubble view. Step 1106 causes a blockview and a bubble view of a second geographic location to be displayed.In some embodiments, step 1106 can occur responsive to receiving theindication of navigation via the indicium of the bubble vieworientation.

FIG. 12 is a flow diagram that describes a method in accordance with oneor more embodiments. The method can be implemented in connection withany suitable hardware, software, firmware, or combination thereof. In atleast some embodiments, the method can be implemented by softwareexecuting or executable (e.g., the web browser 108 and/or the mapservice 112) to enable navigation of geographic content.

Step 1200 causes a first block view and a second block view of a travelroute to be displayed. According to one or more embodiments, the firstblock view and the second block view of the travel route can bedisplayed in a user interface, such as the user interface 600illustrated in FIG. 6. Step 1202 receives an indication of navigation ofthe travel route. In some embodiments, navigation of the travel routecan occur via the first block view, the second block view, or any otherappropriate view (e.g., a bubble view and/or a map view). Step 1204causes the display of the first block view and/or the second block viewof the travel route to be updated. As referenced above in the discussionof FIG. 8, in some implementations a travel route can have varyinglandscapes, and thus block views that are displayed during a navigationof the travel route can be dynamically updated as the travel route isnavigated. For example, where bubble views along a travel route areconsidered as individual capture events, one or more block views can beupdated for each navigation to a subsequent capture event (e.g., bubbleview).

As also referenced above in the discussion of FIG. 8, in someimplementations a travel route can include one or more homogenous orrepetitive landscapes. Thus, in navigating such a travel route, one ormore static images can be displayed in a block view to represent arelatively homogenous or repetitive landscape. See, for example, thesecond block view 806 illustrated in FIG. 8. According to one or moreembodiments, when navigation occurs from one capture event to anotheralong the travel route, the image displayed in a particular block viewcan remain unchanged until a landscape with more visual variation isencountered.

FIG. 13 is a flow diagram that describes a method in accordance with oneor more embodiments. The method can be implemented in connection withany suitable hardware, software, firmware, or combination thereof. In atleast some embodiments, the method can be implemented by softwareexecuting or executable (e.g., the web browser 108 and/or the mapservice 112) to enable navigation of geographic content. In one or moreembodiments, the user interface 702 illustrated in FIG. 7 can beutilized in implementing the method.

Step 1300 receives an indication of a focus on a location included in atravel route. For example, a cursor can be hovered over the locationthat is displayed as part of a display of the travel route. Further tosome embodiments, a travel route can include a roadway or othernavigable route. Step 1302 receives an indication of navigation of thetravel route. For example, and according to some embodiments, a zoomfunction (e.g., in a bubble view) can be activated to cause navigationof the travel route, an icon can be dragged along the travel route, andso on. Step 1304 causes navigation of the travel route to orient towardsthe location. In some example embodiments, placing focus on a locationcan cause a display of the travel route to center on the location.

Step 1306 causes a view of the location to change orientation based onthe position of the location within a particular view. For example, whenthe location appears further away along the travel route, the view ofthe location can be from the perspective of someone travelling along thetravel route and viewing the location as it approaches along the travelroute. See, for example, the user interface 702 illustrated at 700 ofFIG. 7. As a further example, when the navigation proceeds and thelocation appears to come closer in perspective, the view can re-centeron the location. According to some embodiments, when the locationreaches a certain apparent proximity in the navigation of the travelroute, the view perspective can change from someone traveling along thetravel route to the perspective of someone facing the location.

FIG. 14 is a flow diagram that describes a method in accordance with oneor more embodiments. The method can be implemented in connection withany suitable hardware, software, firmware, or combination thereof. In atleast some embodiments, the method can be implemented by softwareexecuting or executable (e.g., the web browser 108 and/or the mapservice 112) to enable navigation of geographic content.

Step 1400 causes a map view of a geographic location to be displayed.Step 1402 receives an indication of a zoom-in of the map view. Exampleways of zooming are discussed above. Step 1404 determines if a map zoomthreshold has been exceeded. In some embodiments, a particular thresholdzoom level can be specified for a map view. If the map zoom thresholdhas not been exceeded, the method returns to step 1402. On the otherhand, if the map zoom threshold has been exceed, step 1406 causes ablock view of the geographic location to be displayed. In someembodiments, the block view can replace the map view in a particularuser interface. Alternatively, the block view can populate a window thatis displayed adjacent to the map view.

Step 1408 receives an indication of a zoom-in of the block view. Step1410 determines if a block zoom threshold has been exceeded. In someembodiments, a particular threshold zoom level can be specified for ablock view. If the block zoom threshold has not been exceeded, themethod returns to step 1408. On the other hand, if the block zoomthreshold has been exceeded, step 1412 causes a bubble view of thegeographic location to be displayed. In some embodiments, the bubbleview can replace the block view in a particular user interface.Alternatively, the bubble view can populate a window that is displayedadjacent to the block view and/or the map view.

While the method is discussed from the perspective of zooming-in from amap view to a block view and/or from a block view to a bubble view, insome embodiments the method can enable views to be zoomed-out from abubble view to a block view and/or from a block view to a map view.Further to such embodiments, the zoom threshold can include a “zoom-out”threshold such that when a particular view is zoomed-out past thethreshold, another view can be displayed. Thus, in one or moreembodiments, the method enables transitions between views by zooming-inand/or out from a particular view.

FIG. 15 is a flow diagram that describes a method in accordance with oneor more embodiments. The method can be implemented in connection withany suitable hardware, software, firmware, or combination thereof. In atleast some embodiments, the method can be implemented by softwareexecuting or executable (e.g., the web browser 108 and/or the mapservice 112) to enable navigation of geographic content.

Step 1500 causes a block view of a geographic location to be displayed.Step 1502 causes one or more bubble views to be displayed at one or moreends of the block view. For an example of displaying bubble views at theends of a block view, see user interface 900 illustrated in FIG. 9. Step1504 enables navigation of the block view and/or the one or more bubbleviews. Step 1506 updates the block view and/or the one or more bubbleviews responsive to the navigation of the block view and/or the one ormore bubble views.

Having discussed example methods according to one or more embodiments,consider now a discussion of an example system that can be utilized toimplement the above-described embodiments.

Example System

FIG. 16 illustrates an example computing device 1600 that can implementthe various embodiments described above. Computing device 1600 can be,for example, computing device 102 of FIG. 1 or any other suitablecomputing device.

Computing device 1600 includes one or more processors or processingunits 1602, one or more memory and/or storage components 1604, one ormore input/output (I/O) devices 1606, and a bus 1608 that allows thevarious components and devices to communicate with one another. Bus 1608represents one or more of any of several types of bus structures,including a memory bus or memory controller, a peripheral bus, anaccelerated graphics port, and a processor or local bus using any of avariety of bus architectures. Bus 1608 can include wired and/or wirelessbuses.

Memory/storage component 1604 represents one or more computer storagemedia. Component 1604 can include volatile media (such as random accessmemory (RAM)) and/or nonvolatile media (such as read only memory (ROM),Flash memory, optical disks, magnetic disks, and so forth). Component1604 can include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.)as well as removable media (e.g., a Flash memory drive, a removable harddrive, an optical disk, and so forth).

One or more input/output devices 1606 allow a user to enter commands andinformation to computing device 1600, and also allow information to bepresented to the user and/or other components or devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a touch input device (e.g., a touch screen), a microphone, ascanner, and so forth. Examples of output devices include a displaydevice (e.g., a monitor or projector), speakers, a printer, a networkcard, and so forth.

Various techniques may be described herein in the general context ofsoftware or program modules. Generally, software includes routines,programs, objects, components, data structures, and so forth thatperform particular tasks or implement particular abstract data types. Animplementation of these modules and techniques may be stored on ortransmitted across some form of computer readable media. Computerreadable media can be any available medium or media that can be accessedby a computing device. By way of example, and not limitation, computerreadable media may comprise “computer storage media”.

“Computer storage media” include volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules, or other data. Computer storage mediainclude, but are not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed by acomputer.

Conclusion

Various embodiments provide techniques for geographic navigation via oneor more block views. According to some embodiments, a block view caninclude a visual image of a geographic location that is visually similarto a panoramic image. In some example implementations, a block view canbe scrolled to navigate images of a geographic location. In one or moreembodiments, a bubble view can be displayed of one or more locationswithin the block view. The bubble view can include a zoomed image of oneor more aspects of a block view. Further to some embodiments, a map viewcan be utilized along with the block view and/or the bubble view. Themap view can include a two-dimensional representation of the geographiclocation from an aerial perspective, and can include a more generallevel of detail concerning the geographic location, such as streets,cities, states, bodies of water, and so on.

Although the subject matter has been described in language specific tostructural features and/or methodological steps, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or steps described. Rather,the specific features and steps are disclosed as example forms ofimplementing the claimed subject matter.

What is claimed is:
 1. A computer-implemented method comprising:causing, with a computing device, a block view of a geographic locationto be displayed as part of a user interface, the block view displaying afirst side of a travel route through the geographic location; receiving,with the computing device, an indication of navigation within the blockview; causing, responsive to receiving the indication of navigationwithin the block view, a first bubble view to be displayed at an end ofthe block view that corresponds to a direction of the navigation withinthe block view, the first bubble view displaying the first side of thetravel route and a second side of the travel route from a perspective ofa traveler along the travel route in the direction of the navigationwithin the block view; causing, with the computing device and responsiveto the navigation within the block view, navigation within the firstbubble view in the direction of the navigation within the block view;receiving an indication of a navigation within the block view in adifferent direction; causing, responsive to the indication of thenavigation within the block view in the different direction, the firstbubble view to be removed from the user interface; and causing,responsive to the indication of the navigation within the block view inthe different direction, a second bubble view to be displayed at anotherend of the block view, the second bubble view displaying one or moreother geographic areas that are adjacent to the geographic locationdisplayed in the block view and in the different direction.
 2. Thecomputer-implemented method of claim 1, further comprising: causing,with the computing device and responsive to a navigation within one ormore of the first bubble view or the second bubble view, navigationwithin the block view.
 3. The computer-implemented method of claim 1,wherein the block view comprises a plurality of images of the geographiclocation that are stitched together.
 4. The computer-implemented methodof claim 1, wherein the block view comprises an abstracted image of thegeographic location.
 5. The computer-implemented method of claim 1,wherein the block view comprises one or more annotations of geographicfeatures included in the block view.
 6. The computer-implemented methodof claim 1, wherein one or more of the first bubble view or the secondbubble view is configured to display a location included in the blockview.
 7. The computer-implemented method of claim 1, wherein the blockview comprises a block icon that indicates an orientation of one or moreof the first bubble view or the second bubble view with respect to thegeographic location.
 8. The computer-implemented method of claim 1,wherein one or more of the first bubble view or the second bubble viewdisplays one or more geographic areas that are adjacent to thegeographic location displayed in the block view.
 9. Thecomputer-implemented method of claim 1, further comprising: receiving,with the computing device, the indication of navigation within the blockview in response to a user manipulation of a block icon displayed aspart of the block view; and causing, with the computing device andresponsive to the user manipulation of the block icon, navigation withinone or more of the first bubble view or the second bubble view.
 10. Acomputer-implemented method comprising: causing, with a computingdevice, a first block view, a second block view, and a bubble view of atravel route to be displayed in a user interface, the bubble viewincluding a view from a perspective of an entity traveling along thetravel route and visual aspects of two sides of the travel route, thefirst block view including a view of a first side of the two sides ofthe travel route, and the second block view including a view of a secondside of the two sides of the travel route; receiving, with the computingdevice, an indication of navigation along the travel route; dynamicallyupdating, with the computing device and responsive to the navigationalong the travel route, the bubble view and the first block view;causing the second block view to be displayed as a single static imageresponsive to an indication that a portion of the second side of thetravel route represents a repetitive landscape that appears to changelittle during a section of the navigation along the travel route, whilethe bubble view and the first block view are dynamically updated duringthe navigation along the travel route; and causing the second block viewto be displayed as a dynamically updating image in place of the staticimage responsive to an indication that a different portion of the secondside of the travel route represents a dynamically changing landscape.11. The computer-implemented method of claim 10, wherein the staticimage includes at least one photograph captured along the travel route.12. The computer-implemented method of claim 10, further comprising:causing, with the computing device, a map view of the travel route to bedisplayed; and dynamically updating, with the computing device andresponsive to the further navigation along the travel route, the mapview.
 13. The computer-implemented method of claim 10, wherein theindication of navigation along the travel route occurs responsive touser input to the bubble view.
 14. The computer-implemented method ofclaim 10, further comprising: causing a map view that includes thetravel route to be displayed, wherein the navigation along the travelroute occurs responsive to user input to the map view.
 15. A systemcomprising: one or more processors; and a storage device havinginstructions stored thereon that responsive to execution by the one ormore processors on a computing device, cause the computing device toperform operations including: causing, a block view of a geographiclocation to be displayed as part of a user interface, the block viewdisplaying a first side of a travel route through the geographiclocation; receiving, an indication of navigation within the block view;causing, responsive to receiving the indication of navigation within theblock view, a first bubble view to be displayed at an end of the blockview that corresponds to a direction of the navigation within the blockview, the first bubble view displaying the first side of the travelroute and a second side of the travel route from a perspective of atraveler along the travel route in the direction of the navigationwithin the block view; causing, responsive to the navigation within theblock view, navigation within the first bubble view in the direction ofthe navigation within the block view; receiving an indication of anavigation within the block view in a different direction; causing,responsive to the indication of the navigation within the block view inthe different direction, the first bubble view to be removed from theuser interface; and causing, responsive to the indication of thenavigation within the block view in the different direction, a secondbubble view to be displayed at another end of the block view, the secondbubble view displaying one or more other geographic areas that areadjacent to the geographic location displayed in the block view and inthe different direction.
 16. The storage device of claim 15, whereinoperations further comprise: causing, responsive to a navigation withinone or more of the first bubble view or the second bubble view,navigation within the block view.
 17. The storage device of claim 15,wherein one or more of the first bubble view or the second bubble viewis configured to display a location included in the block view.
 18. Thestorage device of claim 15, wherein the block view comprises a blockicon that indicates an orientation of one or more of the first bubbleview or the second bubble view with respect to the geographic location.19. The storage device of claim 15, wherein one or more of the firstbubble view or the second bubble view displays one or more geographicareas that are adjacent to the geographic location displayed in theblock view.
 20. The storage device of claim 15, wherein operationsfurther comprise: receiving, the indication of navigation within theblock view in response to a user manipulation of a block icon displayedas part of the block view; and causing, responsive to the usermanipulation of the block icon, navigation within one or more of thefirst bubble view or the second bubble view.